package com.moliku.insurance.model.dto.huaan.confirm;

import com.moliku.insurance.model.dto.InsuranceBaseParam;
import com.moliku.insurance.model.dto.huaan.insure.HuaAnSaleInfoParam;
import com.moliku.insurance.model.vo.huaan.HuaAnConfirmVo;
import com.moliku.insurance.model.vo.huaan.HuaAnUnderwriteVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;

@Data
@ApiModel("华安承保请求")
public class HuaAnConfirmParam implements InsuranceBaseParam<HuaAnConfirmVo> {

    @Override
    public Class<HuaAnConfirmVo> responseType() {
        return HuaAnConfirmVo.class;
    }

    @Override
    public String url() {
        return "/fc/nsp-confirm/baseConfirm";
    }

    @Override
    public METHOD methodType() {
        return METHOD.POST;
    }

    @Override
    public FORMAT formatType() {
        return FORMAT.JSON;
    }

    /**
     *渠道信息
     *
     */
    @ApiModelProperty("渠道信息")
    @NotNull(message ="渠道信息不能为空")
    private HuaAnSaleInfoParam saleInfo;

    /**
     *投保单信息
     *
     */
    @ApiModelProperty("投保单信息")
    @NotNull(message ="投保单信息不能为空")
    private HuaAnConfirmPolicyParam policy;

    /**
     *产品信息
     *
     */
    @ApiModelProperty("产品信息")
    @NotNull(message ="产品信息不能为空")
    private HuaAnConfirmProductParam product;

    /**
     *支付信息
     *自动对账时必传
     */
    @ApiModelProperty("支付信息")
    private HuaAnConfirmPaymentParam payment;

    /**
     *交易信息
     *
     */
    @ApiModelProperty("交易信息")
    @NotNull(message ="交易信息不能为空")
    private HuaAnConfirmTransParam trans;


}
